09

您所在的位置:网站首页 containerd 配置文件介绍 09

09

2024-01-13 01:05| 来源: 网络整理| 查看: 265

1 私有镜像仓库配置参考

K3s 默认使用 containerd 作为容器运行时,所以在 docker 上配置镜像仓库是不生效的[ 除非将容器运行时环境设置为Docker,本篇以containerd作为容器运行时环境 ]

K3s registry 配置目录为: /etc/rancher/k3s/registries.yaml。K3s 启动时,K3s 会检查 /etc/rancher/k3s/ 中是否存在 registries.yaml 文件,并指示 containerd 使用文件中定义的镜像仓库。如果你想使用一个私有的镜像仓库,那么你需要在每个使用镜像仓库的节点上以 root 身份创建这个文件。

请注意,server 节点默认是可以调度的。如果你没有在 server 节点上设置污点,那么将在它们上运行工作负载,请确保在每个 server 节点上创建 registries.yaml 文件。

1.1 镜像仓库配置文件

K3s 镜像仓库配置文件由两大部分组成:mirrors 和 configs

Mirrors 是一个用于定义专用镜像仓库的名称和 endpoint 的指令Configs 部分定义了每个 mirror 的 TLS 和证书配置。对于每个 mirror,你可以定义auth和/或tls

containerd 使用了类似 Kubernetes 中 svc 与 endpoint 的概念,svc 可以理解为访问名称,这个名称会解析到对应的 endpoint 上。 也可以理解 mirror 配置就是一个反向代理,它把客户端的请求代理到 endpoint 配置的后端镜像仓库。mirror 名称可以随意填写,但是必须符合IP或域名的定义规则。并且可以配置多个 endpoint,默认解析到第一个 endpoint,如果第一个 endpoint 没有返回数据,则自动切换到第二个 endpoint,以此类推。

示例:

# mirrors 可以定义多个私有镜像仓库的名称 mirrors: "172.31.6.200:5000": # 私有镜像仓库的名称 endpoint: - "http://172.31.6.200:5000" - "http://x.x.x.x:5000" - "http://y.y.y.y:5000" "rancher.ksd.top:5000": # 私有镜像仓库的名称 endpoint: - "http://172.31.6.200:5000" "docker.io": # 私有镜像仓库的名称 endpoint: - "https://fogjl973.mirror.aliyuncs.com" - "https://registry-1.docker.io" # 类似于Kubernetes 的Service和Endpoint的关系 # configs 配置私有镜像仓库的相应的用户名和密码以及证书信息 configs: "172.31.6.200:5000": auth: username: admin password: Harbor@12345 tls: cert_file: /home/ubuntu/harbor2.kingsd.top.cert key_file: /home/ubuntu/harbor2.kingsd.top.key ca_file: /home/ubuntu/ca.crt

可以通过 crictl pull 172.31.6.200:5000/library/alpine 和 crictl pull rancher.ksd.top:5000/library/alpine 获取到镜像,但镜像都是从同一个仓库获取到的。

root@rancher-server:/etc/rancher/k3s# systemctl restart k3s.service root@rancher-server:/etc/rancher/k3s# crictl pull 172.31.6.200:5000/library/alpine Image is up to date for sha256:a24bb4013296f61e89ba57005a7b3e52274d8edd3ae2077d04395f806b63d83e root@rancher-server:/etc/rancher/k3s# crictl pull rancher.ksd.top:5000/library/alpine Image is up to date for sha256:a24bb4013296f61e89ba57005a7b3e52274d8edd3ae2077d04395f806b63d83e 1.2 搭建 Harbor 私有镜像仓库 1.2.1 部署Harbor私有镜像仓库 # Step1: 安装Docker容器运行时环境 # 在 K3s 节点上安装 Docker。可以使用 Rancher 的一个Docker 安装脚本来安装 Docker: $ curl https://releases.rancher.com/install-docker/19.03.sh | sh # Step2: 配置镜像加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json cfssl.sh 8443/tcp redis redis-server /etc/redis.conf Up (healthy) registry /home/harbor/entrypoint.sh Up (healthy) registryctl /home/harbor/start.sh Up (healthy)

浏览器访问:http:s//也可以修改主机的host文件将IP地址 域名进行绑定。可以查看浏览器的证书。

默认用户名:admin

默认密码:Harbor12345

img

Harbor 镜像仓库可以正常使用,并且创建一个 k3s 的项目

img

# 上传镜像 $ cat /etc/docker/daemon.json { "registry-mirrors": ["https://si7y70hh.mirror.aliyuncs.com"], "insecure-registries": ["reg.kubesphere.com","10.0.0.53"] } $ systemctl daemon-reload ; systemctl restart docker $ docker login reg.kubesphere.com Username: admin Password: 123456 Login Succeeded # 上传镜像 $ docker pull nginx && docker tag nginx:latest reg.kubesphere.com/k3s/nginx:latest $ docker push reg.kubesphere.com/k3s/nginx:latest

img

1.24 基础环境 # K3s Master $ curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | \ INSTALL_K3S_MIRROR=cn \ INSTALL_K3S_VERSION="v1.21.14+k3s1" \ K3S_TOKEN=rancher sh -s - $ kubectl get nodes NAME STATUS ROLES AGE VERSION k3s1 Ready control-plane,master 38s v1.21.14+k3s1 # 查看StorageClass存储类 $ kubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE local-path (default) rancher.io/local-path Delete WaitForFirstConsumer false 42s 1.3 使用 TLS 1.3.1 证书颁发机构颁发的证书 cat >> /etc/rancher/k3s/registries.yaml /etc/rancher/k3s/registries.yaml /etc/rancher/k3s/registries.yaml /etc/rancher/k3s/registries.yaml


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3